package cn.lingyangwl.agile.member.model.entity;

import cn.lingyangwl.agile.model.BasePlusPO;
import cn.lingyangwl.agile.model.constants.SexEnum;
import cn.lingyangwl.agile.model.constants.UserCons;
import cn.lingyangwl.agile.model.enums.TerminalEnum;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * 会员用户
 *
 * @author shenguangyang
 */
@Getter
@Setter
@TableName("member_user")
public class MemberUser extends BasePlusPO {
    @TableId
	private Long id;
	
	/**
	 * 用户名
	 */
	private String userName;
	
	/**
	 * 手机号
	 */
	private String phone;
	
	/**
	 * 真实姓名
	 */
	private String realName;
	
	/**
	 * 昵称
	 */
	private String nickName;
	
	/**
	 * 性别
	 * @see SexEnum
	 */
	private String sex;
	
	/**
	 * 头像
	 */
	private String avatar;
	
	/**
	 * 帐号状态
	 * @see UserCons.Status
	 */
	private String status;

	/**
	 * 注册ip
	 */
	private String registerIp;
	
	/**
	 * 注册的终端
	 * @see TerminalEnum
	 */
	private String registerTerminal;
	
	/**
	 * 最后登录ip
	 */
	private String lastLoginIp;
	
	/**
	 * 最后登录时间
	 */
	private Date lastLoginDate;
	
	/**
	 * 创建者
	 */
	private String createdBy;
	
	/**
	 * 生日
	 */
	private Date birthday;
	
	/**
	 * 当前用户前端的主页面地址
	 */
	private String homePath;
	
	/**
	 * 积分
	 */
	private Integer point;

	/**
	 * 地址-省份id
	 */
	private Long provinceId;

	/**
	 * 地址-市id
	 */
	private Long cityId;

	/**
	 * 地址-区id
	 */
	private Long districtId;

	/**
	 * 详细地址
	 */
	private String address;

	/**
	 * 完整地址
	 */
	private String fullAddress;

	/**
	 * 会员等级id
	 */
	private Long levelId;

	/**
	 * 经验值
	 */
	private Integer experience;

    public static LambdaQueryWrapper<MemberUser> lqw() {
		return Wrappers.lambdaQuery();
	}

	public static LambdaUpdateWrapper<MemberUser> luw() {
		return Wrappers.lambdaUpdate();
	}
}
